专利摘要:
Verfahren,Systeme und Softwareprodukte werden beschrieben zum Bestimmen von anwendbarenKonfigurationsinformationen zur Verwendung bei einer Analyse einescomputergestütztenEntwurfs. Eine Zustandsmaschine wird erzeugt unter Verwendung vonInformationen, die in einer Mehrzahl von Konfigurationsbefehlenenthalten sind. Ein Entwurfselementname, der einem Entwurfselementzugeordnet ist, wird auf die Zustandsmaschine angewendet. Die Zustandsmaschineerzeugt eine Liste, die Konfigurationsinformationen umfaßt, dieauf das Entwurfselement anwendbar sind.
公开号:DE102004020873A1
申请号:DE102004020873
申请日:2004-04-28
公开日:2005-04-07
发明作者:Brandon S. Evans Keller;George Harold Fort Collins Robbert;Gregory Dennis Fort Collins Rogers
申请人:Hewlett Packard Development Co LP;
IPC主号:G06F17-50
专利说明:
[0001] Dasvorliegende Dokument enthältMaterial, das sich auf das Material der mitanhängigen, gemeinsam eingereichtenU.S.-PatentanmeldungenAnwaltsaktenzeichen 100111221-1 mit dem Titel System And Method ForDetermining Wire Capacitance For A VLSI Circuit; Anwaltsaktenzeichen10011228-1 mit dem Titel Systems and Methods Utilizing Fast AnalysisInformation During Detailed Analysis Of A Circuit Design; Anwaltsaktenzeichen100111230-1 mit dem Titel Systems And Methods For Determining ActivityFactors Of A Circuit Design; Anwaltsaktenzeichen 100111232-1 mitdem Titel System And Method For Determining A Highest Level SignalName In A Hierarchical VLSI Design; Anwaltsaktenzeichen 100111233-1mit dem Titel System And Method For Determining Connectivity OfNets In A Hierarchical Circuit Design; Anwaltsaktenzeichen 100111234-1 mitdem Titel System And Method Analyzing Design Elements In ComputerAided Design Tools; Anwaltsaktenzeichen 100111235-1 mit dem TitelSystem And Method For Determining Unmatched Design Elements In A Computer-AutomatedDesign; Anwaltsaktenzeichen 100111236-1 mit dem Titel Computer AidedDesign Systems And Methods With Reduced Memory Utilization; Anwaltsaktenzeichen100111238-1 mit dem Titel System And Method For Iteratively TraversingA Hierarchical Circuit Design; Anwaltsaktenzeichen 100111257-1 mit demTitel Systems And Methods For Establishing Data Model ConsistencyOf Computer Aided Design Tools; Anwaltsaktenzeichen 100111259-1mit dem Titel Systems And Methods For Identifying Data Sources AssociatedWith A Circuit Design; und Anwaltsaktenzeichen 100111260-1 mit demTitel Systems And Methods For Performing Circuit Analysis On A CircuitDesign bezieht, wobei die Offenbarungen derselben hierdurch durchBezugnahme aufgenommen sind.
[0002] Einelektronisches Tool bzw. Werkzeug für einen computergestützten Entwurf(„E-CAD"; E-CAD = electroniccomputer-aided design)wird verwendet, um einen Schaltungsentwurf zu erzeugen, der einenVLSI-Schaltungsentwurf umfaßt(VLSI = Very Large Scale Integration = Höchstintegration). Der Schaltungsentwurfumfaßteine „Netzliste", die eine Sammlungvon Netzen definiert, die fürden Schaltungsentwurf spezifisch sind. Ein „Netz" ist ein einzelner elektrischer Wegin einer Schaltung, die an allen ihren Punkten dieselben elektrischenCharakteristika aufweist. Zum Beispiel ist eine Sammlung von Drähten, diedasselbe Signal zwischen Komponenten trägt, ein Netz. Wenn die Komponentenermöglichen,daß dasSignal unverändertdurchläuft (wiein dem Fall eines Anschlusses), dann setzt sich das Netz auf nachfolgendangeschlossenen Drähtenfort. Wenn die Komponente das Signal jedoch modifiziert (wie indem Fall eines Transistors oder einer Logikgatters), dann endetdas Netz bei dieser Komponente und ein neues Netz beginnt auf deranderen Seite. Ein „Netzname" identifiziert einbestimmtes Netz innerhalb der Netzliste.
[0003] E-CAD-ToolsbenötigenhäufigKonfigurationsinformationen, um den Schaltungsentwurf ordnungsgemäß zu analysieren.Die Konfigurationsinformationen umfassen „Konfigurationsbefehle", die selektiv aufNetze innerhalb der Netzliste angewendet werden. Ein Konfigurationsbefehlist eine Funktion, die verwendet wird, um eine elektrische Charakteristikeiner Komponente des Schaltungsentwurfs (hierin nachfolgend genannt „Entwurfselement") einzustellen. EinEntwurfselement stellt eine einzelne Komponente (z.B. Transistor,Draht, Widerstand, Kondensator, Diode, Logikgatter), ein Netz, odereine Gruppe von Entwurfselementen dar, die strukturell innerhalbdes Schaltungsentwurfs verknüpftsind und durch das E-CAD-Tool verarbeitet werden. Jeder Konfigurationsbefehlkann z. B. ein Befehlstypfeld umfassen, das den Typ des Entwurfselementsoder der Schaltungscharakteri stik anzeigt, auf die der Befehl anwendbarist, ein Netznamenfeld, das das spezifische Netz anzeigt, auf dasder Befehl anwendbar ist, und ein Wertfeld, das den Wert anzeigt,auf den das genannte Netz eingestellt werden soll. Ein Konfigurationsbefehlkönnteferner z. B. nur Befehlstypfeld und Wertfeld enthalten, die externeinem Netznamen oder einem Entwurfselementnamen zugeordnet sind.Diese Felder werden auf ein Entwurfselement angewendet, um spezifischeCharakteristika fürdieses Entwurfselement einzurichten. Zum Beispiel kann ein Konfigurationsbefehl „SpannungVDD 2,1 V" verwendetwerden, um die Versorgungsspannung des Netzes genannt „VDD" auf 2,1 V einzustellen.
[0004] DasE-CAD-Tool bestimmt, welche Konfigurationsbefehle auf bestimmteNetze in einem VLSI-Entwurf anwendbar sind, um die Analyse des Schaltungsentwurfszu beschleunigen. Um zu bestimmen, welche Konfigurationsbefehleauf jedes Netz anwendbar sind, werden manchmal „Teilspezifizierer" verwendet, um Netznameninnerhalb der Netzliste anzupassen. Ein Teilspezifizierer ist ein „regulärer Ausdruck", der verwendet wird,um Netznamen und Entwurfselementnamen innerhalb der Netzliste zuidentifizieren und optional auszuwählen. Ein regulärer Ausdruckist eine Quellzeichenfolge, die Strukturanpassungs- und Substitutions-Operationenbei einer oder mehreren Zielzeichenfolgen definiert. Der reguläre Ausdruckverwendet einen Satz von „speziellen" Zeichen, derart,daß dieQuellzeichenfolge mit spezifischen Teilen der Zielzeichenfolge übereinstimmt.Zum Beispiel stimmt das Zeichen „." in der Quellzeichenfolge mit einemZeichen in der Zielzeichenfolge überein,währenddas Zeichen „*" in der Quellzeichenfolgemit Null oder mehreren aufeinanderfolgenden Zeichen in der Zielzeichenfolge übereinstimmt.Beispiele von regulärenAusdrückensind in vielen Softwaretools (z. B. grep, awk, etc.) des UNIX-Betriebssystemsenthalten. Der Teilspezifizierer kann nur als ein Teilsatz des regulären Ausdrucksimplementiert sein, z. B. der Teilspezifizierer, der nur die Suchfunktionalität des regulären Ausdruckseinlagert. Die Zeichenfolgen „*/scan/ shift", „test/h1/*" und „*" sind Beispiele vonTeilspezifizierern.
[0005] BekannteE-CAD-Tools verwenden mehrere bekannte Verfahren, um zu bestimmen,welche Konfigurationsbefehle auf Netze eines Schaltungsentwurfsanwendbar sind. Bei einem Verfahren wird ein Teilspezifizierer,der einem Konfigurationsbefehl zugeordnet ist, verwendet, um jedenNetznamen in einer Netzliste in Übereinstimmungzu bringen, um zu bestimmen, ob der Konfigurationsbefehl auf dasNetz zutrifft. Dieses Verfahren erfordert einen linearen Zeitbetragim Hinblick auf die Anzahl von Teilspezifizierern, die geprüft werden, undist daher relativ zeitaufwendig aufgrund der Tatsache, daß jederNetzname in der Netzliste gegen jeden Teilspezifizierer geprüft wird,der jedem Konfigurationsbefehl zugeordnet ist. Ein anderes Verfahren,das verwendet wird, um anwendbare Konfigurationsbefehle zu bestimmen,erweitert alle Teilspezifizierer am Anfang der Analyse, wodurchvorbestimmt wird, welche Netze mit jedem Konfigurationsbefehl übereinstimmen.Bei einem typischen VLSI-Schaltungsentwurf, der Millionen von Netzenaufweist, könnenbeide dieser Prozesse untragbar lang sein, da sie M × N-Teilspezifizierer-Übereinstimmungenerfordern, wobei M die Anzahl von Netznamen ist und N die Anzahlvon Teilspezifizierern ist.
[0006] Esist die Aufgabe der vorliegenden Erfindung, ein Verfahren und einSystem zum Bestimmen von anwendbaren Konfigurationsinformationenund ein Softwareprodukt mit verbesserten Charakteristika zu schaffen.
[0007] DieseAufgabe wird durch ein Verfahren zum Bestimmen von anwendbaren Konfigurationsinformationengemäß Anspruch1 und 13, ein System zum Bestimmen von anwendbaren Konfigurationsinformationen gemäß Anspruch9 und 15 und ein Softwareprodukt gemäß Anspruch 18 gelöst.
[0008] Beieinem Ausführungsbeispielbestimmt ein Verfahren anwendbare Konfigurationsinformationen zur Verwendungbei der Analyse eines computergestützten Entwurfs. Eine Zustandsmaschinewird unter Verwendung von Informationen erzeugt, die in einer Mehrzahlvon Konfigurationsbefehlen enthalten sind. Ein Entwurfselementname,der einem Entwurfselement zugeordnet ist, wird auf die Zustandsmaschineangewendet. Die Zustandsmaschine erzeugt eine Liste, die Konfigurationsinformationenumfaßt,die auf das Entwurfselement anwendbar sind.
[0009] Beieinem anderen Ausführungsbeispielbestimmt ein System anwendbare Konfigurationsinformationen zur Verwendungbei der Analyse eines computergestützten Entwurfs. Eine Dateienthälteine Mehrzahl von Konfigurationsbefehlen, die Werte einstellen,die Netzen in dem Entwurf zugeordnet sind. Eine Netzliste enthält eineMehrzahl von Netznamen, wobei jede derselben einem der Netze zugeordnetist. Ein Prozessor führt eineZustandsmaschine aus, die unter Verwendung von Informationen kompiliertwird, die in einer Mehrzahl von Konfigurationsbefehlen enthaltensind. Ansprechend auf die Eingabe, die einen der Netznamen aufweist, erzeugtdie Zustandsmaschine eine Liste, die Konfigurationsinformationenumfaßt,die auf eines der Netze anwendbar sind, das der Eingabe entspricht.
[0010] Beieinem anderen Ausführungsbeispielbestimmt ein Verfahren anwendbare Konfigurationsinformationen zurVerwendung bei einer Analyse eines computergestützten Entwurfs. Eine Zustandsmaschinewird unter Verwendung von Informationen erzeugt, die in einer Mehrzahlvon Konfigurationsbefehlen enthalten sind. Ansprechend auf eineEingabe, die einen Netznamen umfaßt, der einem Netz in dem Entwurfzugeordnet ist, erzeugt die Zustandsmaschine eine Liste, die dieKonfigurationsinformationen umfaßt, die auf das Netz anwendbarsind. Die Zustandsmaschine wird kompiliert durch Bestimmen, auseinem Satz von regulärenAusdrücken,die den Konfigurationsbefehlen zugeordnet sind, eines Satzes von Zuständen und Übergängen zwischenden Zuständen,die gegen Zeichen des Netznamens in Übereinstimmung gebracht werden,um Null oder mehr reguläreAusdrückezu bestimmen, die mit dem Netznamen übereinstimmen. Alle der somitbestimmten regulärenAusdrückeweisen einen oder mehrere entsprechende Konfigurationsbefehle auf,die denselben zugeordnet sind, die auf den Netznamen anwendbar sind.Jeder der Konfigurationsbefehle umfaßt ein Befehlstypfeld, dasden Typ der Entitätanzeigt, auf die der Befehl anwendbar ist, und ein Wertfeld, dasden Wert anzeigt, auf den das Netz, das dem Netznamen entspricht,eingestellt werden soll. Ein Netzname, der dem Entwurf zugeordnetist, wird auf die Zustandsmaschine angewendet, um die Liste zu erzeugen.Die Konfigurationsbefehle in der Liste werden auf zumindest einesder Netze in dem Entwurf angewendet.
[0011] Beieinem anderen Ausführungsbeispielbestimmt ein System anwendbare Konfigurationsinformationen zur Verwendungbei einer Analyse eines computergestützten Entwurfs, das folgendeMerkmale aufweist: eine Einrichtung zum Erzeugen einer Zustandsmaschineunter Verwendung von Informationen, die in einer Mehrzahl von Konfigurationsbefehlenenthalten sind, wobei, ansprechend auf eine Eingabe, die einen Entwurfselementnamenaufweist, der einem Netz in dem Entwurf zugeordnet ist, die Zustandsmaschineeine Liste erzeugt, die die Konfigurationsinformationen umfaßt, dieauf das Netz anwendbar sind; und eine Einrichtung zum Anwenden desEntwurfselementnamens auf die Zustandsmaschine, um die Liste zuerzeugen.
[0012] Beieinem anderen Ausführungsbeispielweist ein Softwareprodukt Anweisungen auf, die auf einem computerlesbarenMedium gespeichert sind, wobei die Anweisungen, wenn sie durch einenComputer ausgeführtwerden, Schritte durchführenzum Bestimmen anwendbarer Konfigurationsinformationen zur Verwendungbei einer Analyse eines computergestützten Entwurfs, die folgendesumfassen Anweisungen zum Erzeugen einer Zustandsmaschine unter Verwendungvon Informationen, die in einer Mehrzahl von Konfigurationsbefehlenenthalten sind, wobei, ansprechend auf eine Eingabe, die einen Netznamenaufweist, der einem Netz in dem Entwurf zugeordnet ist, die Zustandsmaschineeine Liste erzeugt, die die Konfigurationsinformationen umfaßt, dieauf das Netz anwendbar sind; Anweisungen zum Anwenden eines Netznamens,der dem Entwurf zugeordnet ist, auf die Zustandsmaschine, um dieListe zu erzeugen; und Anweisungen zum Anwenden der Konfigurationsbefehlein der Liste auf zumindest ein Netz in dem Entwurf.
[0013] BevorzugteAusführungsbeispieleder vorliegenden Erfindung werden nachfolgend Bezug nehmend aufdie beiliegenden Zeichnungen nähererläutert.Es zeigen:
[0014] 1 ein exemplarisches E-CAD-Systemzum Bestimmen von anwendbaren Konfigurationsinformationen zur Verwendungbei einer Analyse eines computergestützten Entwurfs;
[0015] 2A ein Flußdiagramm,das einen exemplarischen Satz von Schritten darstellt, die bei derOperation des Systems aus 1 durchgeführt werden;
[0016] 2B ein Flußdiagramm,das einen alternativen exemplarischen Satz von Schritten darstellt,die bei der Operation des Systems aus 1 durchgeführt werden;
[0017] 3 ein Diagramm einer exemplarischenZustandsmaschine, die zur Verwendung in dem System aus 1 geeignet ist; und
[0018] 4 ein Flußdiagramm,das ein Verfahren zum Bestimmen von anwendbaren Konfigurationsinformationenzur Verwendung bei der Analyse eines computergestützten Entwurfsdarstellt.
[0019] 1 zeigt ein System 100 für einenexemplarischen elektronischen computergestützten Entwurf („E-CAD"-System; E-CAD = ElectronicComputer Aided Design), das anwendbare Konfigurationsinformationenzur Verwendung bei einer Analyse eines computergestützten Entwurfsbestimmt. Das System 100 umfaßt ein Computersystem 101,das einen Computerspeicher 104, einen Prozessor 102 undeine Speicherungseinheit 106 enthält. Die Speicherungseinheit 106 speichertein E-CAD-Tool 107 undeinen Schaltungsentwurf 109. Das E-CAD-Tool 107 umfaßt einenKompilierer 105. Das Computersystem 101 verwendetden Prozessor 102, um das E-CAD-Tool 107 und denKompilierer 105 in den Computerspeicher 104 derartzu laden, daß das E-CAD-Tool 107 nachder Ausführungdurch den Prozessor 102 den Schaltungsentwurf 109 analysiert.Der Schaltungsentwurf 109 wird z. B. durch das E-CAD-Tool 107 entwickelt;er umfaßteine Netzliste 113, die die Netze des Schaltungsentwurfs 109 definiert,und eine Konfigurationsdatei 111, die Konfigurationsbefehlefür denSchaltungsentwurf 109 definiert.
[0020] DasE-CAD-Tool 107 und der Kompilierer 105 sind wirksam,um eine Zustandsmaschine 103 aus Teilspezifizierern zuerzeugen, die in einer Konfigurationsbefehlsliste 108 derKonfigurationsdatei 111 enthalten sind. Eine „Zustandsmaschine" kann als ein Mechanismusdefiniert sein, der einen anfänglichenZustand aufweist, und der einen Satz von Eingabeereignissen undeinen Satz von Ausgabeereignissen, einen Satz von Zuständen, eineFunktion, die Zuständeund Eingaben auf Ausgaben abbildet, und eine Funktion, die Zustände undEingaben auf Zuständeabbildet (genannt eine Zustandübergangsfunktion),umfaßt.Wie nachfolgend detaillierter beschrieben wird, ist die Zustandsmaschine 103,sobald sie erzeugt wurde, wirksam, um eine anwendbare Konfigurationsbefehlsliste 110 zuerzeugen, die Konfigurationsbefehle enthält, die auf jedes Netz vonInteresse währendder Analyse des Schaltungsentwurfs 109 anwendbar sind.
[0021] 2A ist ein Flußdiagramm,das einen exemplarischen Satz von Schritten darstellt, die bei derOperation des E-CAD-Systems 100 ausgeführt werden. 2B ist ein Flußdiagramm,das einen alternativen exemplarischen Satz von Schritten darstellt,die bei der Operation des E-CAD-Systems 100 durchgeführt werden. 3 ist ein Diagramm einerexemplarischen Zustandsmaschine (z. B. Zustandsmaschine 103),die durch das E-CAD-System 100 verwendet wird. Die Operationdes E-CAD-Systems 100 ist am besten verständlich durchBetrachten der 1, 2A, 2B und 3 inVerbindung miteinander. Anfänglich,bei Schritt 205, werden Informationen in den Konfigurationsbefehlenin der Konfigurationsdatei 111, einschließlich desregulärenAusdrucks/Netznamens, der jedem Befehl zugeordnet ist, in der Konfigurationsinformationsliste 108 indem Computerspeicher 104 gespeichert. Bei einem alternativenAusführungsbeispielwird die Konfigurationsdatei 111 selbst in den Computerspeicher 104 geladen,und auf die Konfigurationsbefehlsinformationen, die in demselbengespeichert sind, wird direkt anstelle der Liste 108 Bezuggenommen (bei Schritt 210). Ein Beispiel einer Teillistevon Konfigurationsbefehlen, die in der Konfigurationsdatei 111 gespeichertist, ist in Tabelle 1 gezeigt, in der das Feld „Befehlstyp" die Charakteristikanzeigt, die einem spezifischen Netznamen zugeordnet ist, der aufden entsprechenden Wert eingestellt werden soll: TABELLE1 BEISPIELKONFIGURATIONSBEFEHLE
[0022] BeiSchritt 210 wird die Zustandsmaschine 301 kompiliertoder anderweitig aus den Konfigurationsinformationen erzeugt, diein der Liste 108 gespeichert sind, durch Verwenden desKompilierers 105 bei einem exemplarischen Ausführungsbeispiel.Die Zustandsmaschine 103 wird aus dem Satz von Teilspezifizierernerzeugt, der den Konfigurationsbefehlen in der Konfigurationsdatei 111 zugeordnetist. Ein Satz von Zuständen und Übergängen wirdderart bestimmt, daß wenndie Zustandsmaschine 103 mit den Zeichen eines Netznamensbeliefert wird (z. B. einem Netznamen eines Netzes, das durch dieNetzliste 113 definiert ist), bestimmt die Zustandsmaschine 103,welche, falls überhaupt,der Teilspezifizierer mit dem Netznamen übereinstimmen. Aus den Teilspezifizierernbestimmt die Zustandsmaschine 103, welche, falls überhaupt,der zugeordneten Konfigurationsbefehle auf den Netznamen zutreffen.
[0023] Verfahrenzum Erzeugen von Zustandsmaschinen sind in der Technik bekannt,und die resultierende Zustandsmaschine besteht üblicherweise im wesentlichenentweder aus einer Schalteranweisung innerhalb einer Schleife odereiner Tabelle, die die möglichen Übergänge für jedenZustand als eine Funktion eines „aktuellen Zustands" darstellt. Bei demersteren Verfahren verwendet bei jeder Iteration der Schleife dieSchalteranweisung den aktuellen Zustand der Zustandsmaschine 103,um ein nachfolgendes Zeichen des Netznamens zu prüfen, derbewertet wird, um zu entscheiden, welcher Codeabschnitt aktiviertwerden soll, wobei jeder Codeabschnitt verwendet wird, um den nächsten Zustandzu berechnen. Die Schleife wird iteriert, bis der Netzname vollständig in Übereinstimmunggebracht ist und ein „Akzeptanzzustand" (z. B. Zustände 306, 307, 308 und 309, 3) erreicht ist. Der Akzeptanzzustanddefiniert Konfigurationsbefehle, falls vorhanden, die auf den in Übereinstimmunggebrachten Netznamen anwendbar sind, und speichert dieselben inder Liste 110. Es sollte darauf hingewiesen werden, daß zusätzlich zuden Netznamen das vorliegende Verfahren ferner auf andere Schaltungsentwurfsindizesanwendbar ist, wie z. B. Entwurfselementnamen.
[0024] BeiBlock 215 wird jedes Netz von Interesse in der Netzliste 113 (alleNetze bei Entwurf 109 sind nicht notwendigerweise von Interessefür jedeAnalyse) durch die Zustandsmaschine 103 verarbeitet, umdie Liste 110 zu erzeugen, die anwendbare Konfigurationsbefehleenthält,wobei Null oder mehr derselben auf ein spezifisches dieser Netzeanwendbar sind. Bei Schritt 220 wird ein spezifischer Netznameauf die Zustandsmaschine 103 angewendet, um die Liste 110 vonKonfigurationsbefehlen zu erzeugen, die auf den Netznamen anwendbarsind. 3 stellt eineexemplarische Zustandsmaschine dar, wie sie durch den Kompilierer 105 ausden Konfigurationsbefehlen aus Tabelle 1 erzeugt wird. Die Zustandsmaschine 103 wirdanfänglichauf Zustand 300 eingestellt und bewegt sich weiter vonZustand zu Zustand, basierend auf Zeichen des Netznamens, der analysiertwird. Bei dem vorliegenden Beispiel sei angenommen, daß ein Netznamevon „abcd" auf die Zustandsmaschine 103 angewendetwird. Nach dem Lesen des ersten Zeichens des Netznamens geht dieZustandsmaschine 103 in Zustand 303 über, dadas erste Zeichen in dem Netznamen des Zeichens „a" ist. Die Zustandsmaschine 103 bestimmtdann, ob das Ende des Netznamens erreicht wurde, und wenn nicht,geht sie von dem aktuellen Zustand in den nächsten Zustand über, basierendauf dem nächstenZeichen in dem Netznamen. Bei dem Beispiel ist das nächste Zeichenin dem Netznamen „b"; daher geht dieZustandsmaschine 103 in den Zustand 304 über. DieZustandsmaschine 103 bleibt dann in dem Zustand 304,wo sie das oder die verbleibenden Zeichen des Netznamens unter Verwendungeines „Beliebiges-Zeichen"-Zustandsübergangsverarbeitet (wie gezeigt), bis alle verbleibenden Zeichen des Netznamens(z. B. Zeichen „c" und „d" des Beispiels) verarbeitetsind. Nach dem Erfassen des Endes des Netznamens wird ein Übergangzu dem Akzeptanzzustand 307 durchgeführt und anwendbare Konfigurationsbefehle,die aus dem Zustand 307 resultieren, werden in der Liste 110 gespei chert(z. B. unter Verwendung des Beispiels aus Tabelle 1, werden Konfigurationsbefehle „voltageabcd 2.1v" und „wire_capabcd 2pf" in derListe 110 gespeichert, die anzeigt, daß die Versorgungsspannung für das Netz „abcd" 2,1 Volt beträgt, unddaß dieDrahtkapazitätfür dasNetz „abcd" 2 Pikofarad beträgt).
[0025] Eswird darauf hingewiesen, daß diesesErgebnis mit der Tatsache übereinstimmt,daß dieZeichenfolge „abcd" durch den Teilspezifizierer „a*" des Konfigurationsbefehls „voltagea* 2.1v", und fernerdurch den Teilspezifizierer „ab*" des Konfigurationsbefehls „wire_capab* 2pf" in Übereinstimmunggebracht wird.
[0026] Auf ähnlicheWeise führtdas Verarbeiten des Netznamens „bc" durch die Zustandsmaschine 103 zu Übergängen vondem Zustand 300 durch den Zustand 302 zu dem Akzeptanzzustand 309.Der Konfigurationsbefehl „wire_capbc 3pf" wird dannin Liste 110 gespeichert.
[0027] Einunbenannter Übergang,der beim Verarbeiten des Netznamens angetroffen wird, führt zu einem Übergangzu einem Nullakzeptanzzustand 308. Zum Beispiel, wenn derNetzname „ba" auf die Zustandsmaschine 103 angewendetwird, tritt ein anfänglicher Übergangvom Zustand 300 zu Zustand 301 auf, ansprechendauf das erste Zeichen „b" in dem Netznamen.Das Verarbeiten des nächstenZeichens „a" des Netznamens führt zu einem Übergangzu Zustand 308, da der einzige benannte Übergangvon Zustand 301 ansprechend auf das Zeichen „c" erfolgt; der Netzname „ba" ist daher nicht übereinstimmend.Da der Zustand 308 einen Nullkonfigurationsbefehl aufweist,würde keinEintrag in der Liste 110 für den Netznamen gespeichert werden.
[0028] Schritt 220 beiBlock 215 wird dann fürjedes Netz von Interesse in dem Entwurf 109 wiederholt,wie durch Pfeil 221 angezeigt ist. Nachdem die anwendbarenKonfigurationsbefehle füralle Netze von Interesse erzeugt wurden, werden dann bei Schritt 225 dieKonfigurationsbefehle in Liste 110 auf die entsprechenden Netzebei dem Entwurf 109 angewendet, unter Verwendung des E-CAD-Tools 107.
[0029] 2B ist ein Flußdiagramm,das einen alternativen beispielhaften Satz von Schritten darstellt,die bei der Operation des Systems 100, 1, ausgeführt werden. Wie in 2B gezeigt ist, wird nachdem Durchführender Schritte 205 und 210 jedes Netz von Interessein der Netzliste 113 auf die Zustandsmaschine 103 angewendet,um bei Schritt 220 die Liste 110 von Konfigurationsbefehlenzu erzeugen, die fürein bestimmtes Netz spezifisch sind, wie oben im Hinblick auf 2A beschrieben wurde. Beidem vorliegenden Ausführungsbeispielwird jeder Schritt bei Block 230 für ein Netz nach dem anderendurchgeführt.Wenn ein Netz bei Schritt 220 verarbeitet wurde, werdeneiner oder mehrere Konfigurationsbefehle, die dem Akzeptanzzustandfür diesesNetz entsprechen, in der Liste 110 gespeichert. Nachdemdie anwendbaren Konfigurationsbefehle für das aktuelle Netz von Interessebei Entwurf 109 erzeugt wurden, werden dann bei Schritt 245 dieKonfigurationsbefehle in Liste 110 auf das aktuelle Netzunter Verwendung des E-CAD-Tools 107 angewendet. Die Schritte beiBlock 230 werden dann fürjedes Netz von Interesse bei dem Entwurf 109 wiederholt.
[0030] Anweisungen,die die Operationen durchführen,die im Hinblick auf 2A und 2B beschrieben wurden, können indem Computerspeicher 104 oder auf einem anderen computerlesbarenMedium gespeichert werden und spätervon demselben wiedergewonnen werden und durch den Prozessor 102 ausgeführt werden, umgemäß dem vorliegendenSystem zu arbeiten. Beispiele von Anweisungen umfassen Software,Programmcode und Firmware. Beispiele von Speicherungsmedien umfassenSpeichervorrichtungen, Bänder,Platten, integrierte Schaltungen und Server.
[0031] 4 ist ein Flußdiagramm,das einen Prozeß 400 zumBestimmen von anwendbaren Konfigurationsinformationen zur Verwendungbei einer Analyse eines computergestützten Entwurfs darstellt. BeiSchritt 402 wird eine Zustandsmaschine unter Verwendungvon Informationen erzeugt, die in einer Mehrzahl von Konfigurationsbefehlenenthalten sind. Bei Schritt 404 wird ein Entwurfselementname,der einem Entwurfselement zugeordnet ist, auf die Zustandsmaschineangewendet. Bei Schritt 406 erzeugt die Zustandsmaschineeine Liste, die Konfigurationsinformationen umfaßt, die auf das Entwurfselementanwendbar sind. Der Prozeß 400 wirdz. B. durch das System 100, 1,währendder Analyse des Entwurfs 109 ausgeführt.
[0032] Änderungenkönnenan dem obigen Verfahren und System durchgeführt werden, ohne von dem Schutzbereichderselben abzuweichen. Es sollte somit darauf hingewiesen werden,daß derGegenstand, der in der obigen Beschreibung enthalten oder in denbeiliegenden Zeichnungen gezeigt ist, als darstellend und nichtin einem einschränkendenSinn interpretiert werden sollte. Die folgenden Ansprüche sollenalle allgemeinen und spezifischen Merkmale abdecken, die hierinbeschrieben sind, sowie alle Anmerkungen des Schutzbereichs desvorliegenden Verfahrens und Systems, die aus sprachlichen Gründen zwischendiese fallen können.
权利要求:
Claims (20)
[1] Verfahren (205–245, 400)zum Bestimmen von anwendbaren Konfigurationsinformationen (110)zur Verwendung bei einer Analyse eines computergestützten Entwurfs(109), das folgende Schritte aufweist: Erzeugen (210, 402)einer Zustandsmaschine (103) unter Verwendung von Informationen,die in einer Mehrzahl von Konfigurationsbefehlen enthalten sind; Anwenden(215, 404) eines Entwurfselementnamens, der einemEntwurfselement zugeordnet ist, auf die Zustandsmaschine (103);und Erzeugen (230, 406) einer Liste (110)mit der Zustandsmaschine, die Konfigurationsinformationen (110)umfaßt,die auf das Entwurfselement anwendbar sind.
[2] Verfahren gemäß Anspruch1, bei dem die Zustandsmaschine (103) kompiliert (210)wird, durch Bestimmen, aus einem Satz von regulären Ausdrücken, die den Konfigurationsbefehlenzugeordnet sind, eines Satzes von Zuständen (300–309)und Übergängen (a,b, nicht b, c, Ende) zwischen den Zuständen, die gegen Zeichen desEntwurfselementnamens in Übereinstimmunggebracht werden, um Null oder mehr reguläre Ausdrücke zu bestimmen, die mit demEntwurfselementnamen übereinstimmen,wobei jeder der regulärenAusdrückeeinen oder mehrere entsprechende Konfigurationsbefehle aufweist,die demselben zugeordnet sind, die auf den Entwurfselementnamenanwendbar sind.
[3] Verfahren gemäß Anspruch1 oder 2, bei dem der Ent wurfselementname einem Netz in dem Entwurf (109)zugeordnet ist.
[4] Verfahren gemäß Anspruch3, bei dem die Zustandsmaschine (103) die Liste (110)erzeugt, durch Bewerten regulärerAusdrücke,die jedem Netz von Interesse in dem Entwurf zugeordnet sind, umeinen Akzeptanzzustand (306, 307, 308, 309)für jedender regulärenAusdrückezu bestimmen, wobei jeder Akzeptanzzustand einen oder mehrere entsprechendeder Konfigurationsbefehle aufweist, die demselben zugeordnet sind, dieauf die Netznamen in dem Entwurf (109) anwendbar sind.
[5] Verfahren gemäß Anspruch4, bei dem jeder der Konfigurationsbefehle ein Befehlstypfeld, dasdie Charakteristik anzeigt, auf die der Befehl anwendbar ist, undein Wertfeld umfaßt,das einen Wert anzeigt, auf den das Entwurfselement, das dem Entwurfselementnamenentspricht, eingestellt werden soll.
[6] Verfahren gemäß Anspruch5, bei dem jeder der Konfigurationsbefehle ferner ein Netznamenfeldumfaßt,das einen regulärenAusdruck aufweist, der zumindest ein spezifisches Netz in dem Entwurfanzeigt, auf das ein entsprechender der Konfigurationsbefehle anwendbarist.
[7] Verfahren gemäß einemder Ansprüche1 bis 6, das den Schritt des Anwendens (225, 245)der Konfigurationsbefehle auf zumindest ein Netz in dem Entwurf(109) umfaßt,wobei der Entwurfselementname dem Netz zugeordnet ist.
[8] Verfahren gemäß einemder Ansprüche1 bis 7, bei dem der Entwurfselementname ein Netzname ist, der ineiner Netzliste enthalten ist, die dem Entwurf zugeordnet ist.
[9] System (100) zum Bestimmen von anwendbarenKonfigurationsinformationen (110) zur Verwendung bei derAnaly se eines computergestütztenEntwurfs (109), das folgende Merkmale aufweist: eineDatei (111), die eine Mehrzahl von Konfigurationsbefehlenenthält,zum Einstellen von Werten, die Netzen in dem Entwurf (109)zugeordnet sind; eine Netzliste (113), die eine Mehrzahlvon Netznamen enthält,wobei jeder derselben einem der Netze zugeordnet ist; einenProzessor (102); und eine Zustandsmaschine (103),die durch den Prozessor ausgeführtwird, die unter Verwendung von Informationen (108) kompiliertwird, die in einer Mehrzahl von Konfigurationsbefehlen enthaltensind, wobei, ansprechend auf eine Eingabe, die einen der Netznamenenthält,die Zustandsmaschine (103) eine Liste (110) erzeugt,die Konfigurationsinformationen (108) umfaßt, dieauf eines der Netze anwendbar sind, das der Eingabe entspricht.
[10] System gemäß Anspruch9, bei dem die Zustandsmaschine (103) kompiliert wird,durch Bestimmen, aus einem Satz von regulären Ausdrücken, die den Konfigurationsbefehlenzugeordnet sind, eines Satzes von Zuständen (300–309)und Übergängen (a,b, nicht b, c, Ende) zwischen den Zuständen, die gegen Zeichen einesNetznamens in Übereinstimmunggebracht werden, um Null oder mehr reguläre Ausdrücke zu bestimmen, die mit demNetznamen übereinstimmen,wobei jeder der somit bestimmten regulären Ausdrücke einen oder mehrere entsprechendeder Konfigurationsbefehle aufweist, die demselben zugeordnet sind,die auf den Netznamen anwendbar sind.
[11] System gemäß Anspruch10, bei dem jeder der Konfigurationsbefehle ein Befehlstypfeld,das eine Charakteri stik anzeigt, auf die der Befehl anwendbar ist,und ein Wertfeld umfaßt,das den Wert anzeigt, auf den das Netz, dem der Netzname entspricht,eingestellt werden soll.
[12] System gemäß Anspruch11, bei dem jeder der Konfigurationsbefehle ferner ein Netznamenfeldumfaßt,das ein spezifisches Netz anzeigt, auf das ein entsprechender derKonfigurationsbefehle anwendbar ist.
[13] Verfahren zum Bestimmen anwendbarer Konfigurationsinformationenzur Verwendung bei einer Analyse eines computergestützten Entwurfs,das folgende Schritte aufweist: Erzeugen einer Zustandsmaschineunter Verwendung von Informationen, die in einer Mehrzahl von Konfigurationsbefehlenenthalten sind, wobei, ansprechend auf eine Eingabe, die einen Netznamenaufweist, der einem Netz in dem Entwurf zugeordnet ist, die Zustandsmaschineeine Liste erzeugt, die Konfigurationsinformationen umfaßt, dieauf das Netz anwendbar sind; wobei die Zustandsmaschine kompiliertwird durch Bestimmen, aus einem Satz von regulären Ausdrücken, die den Konfigurationsbefehlenzugeordnet sind, eines Satzes von Zuständen und Übergängen zwischen den Zuständen, diegegen Zeichen des Netznamens in Übereinstimmunggebracht werden, um Null oder mehr reguläre Ausdrücke zu bestimmen, die mit demNetznamen übereinstimmen,wobei jegliche der regulärenAusdrücke,die somit bestimmt werden, einen oder mehrere entsprechende Konfigurationsbefehleaufweisen, die denselben zugeordnet sind, die auf den Netznamenanwendbar sind; wobei jeder der Konfigurationsbefehle ein Befehlstypfeld,das den Typ der Entitätanzeigt, auf die der Befehl anwendbar ist, und ein Wertfeld umfaßt, dasden Wert anzeigt, auf den das Netz, das dem Netznamen entspricht,eingestellt werden soll; Anwenden eines Netznamens, der demEntwurf zugeordnet ist, auf die Zustandsmaschine, um die Liste zu erzeugen;und Anwenden der Konfigurationsbefehle in der Liste auf zumindesteines der Netze in dem Entwurf.
[14] Verfahren gemäß Anspruch13, bei dem jeder der Konfigurationsbefehle ferner ein Netznamenfeldumfaßt,das ein spezifisches Netz in dem Entwurf anzeigt, auf das ein entsprechenderder Konfigurationsbefehle anwendbar ist.
[15] System zum Bestimmen von anwendbaren Konfigurationsinformationenzur Verwendung bei einer Analyse eines computergestützten Entwurfs,das folgende Merkmale aufweist: eine Einrichtung zum Erzeugeneiner Zustandsmaschine unter Verwendung von Informationen, die ineiner Mehrzahl von Konfigurationsbefehlen enthalten sind, wobei,ansprechend auf eine Eingabe, die einen Entwurfselementnamen aufweist,der einem Netz in dem Entwurf zugeordnet ist, die Zustandsmaschineeine Liste erzeugt, die die Konfigurationsinformationen umfaßt, dieauf das Netz anwendbar sind; und eine Einrichtung zum Anwendendes Entwurfselementnamens auf die Zustandsmaschine, um die Listezu erzeugen.
[16] System gemäß Anspruch15, bei dem jeder der Konfigurationsbefehle ein Befehlstypfeld,das den Typ der Entitätanzeigt, auf die der Befehl anwendbar ist, und ein Wertfeld umfaßt, dasden Wert anzeigt, auf den das Entwurfselement, das dem Entwurfselementnamenentspricht, eingestellt werden soll, und bei dem die Zustandsmaschinekompiliert wird, durch Bestimmen, aus einem Satz von regulären Ausdrücken, dieden Konfigurationsbefehlen zugeordnet sind, eines Satzes von Zuständen und Übergängen zwischenden Zuständen, diegegen Zeichen des Entwurfselementnamens in Übereinstimmung gebracht sind,um Null oder mehr reguläreAusdrückezu bestimmen, die mit dem Netznamen übereinstimmen, wobei jeglicheder regulärenAusdrücke,die somit bestimmt wurden, einen oder mehrere Konfigurationsbefehleaufweisen, die denselben zugeordnet sind, die auf den Entwurfselementnamenanwendbar sind.
[17] System gemäß Anspruch16, bei dem jeder der Konfigurationsbefehle ferner ein Netznamenfeldumfaßt,das ein spezifisches Netz anzeigt, auf das ein entsprechender derKonfigurationsbefehle anwendbar ist.
[18] Softwareprodukt, das Anweisungen aufweist, die aufeinem computerlesbaren Medium gespeichert sind, wobei die Anweisungen,wenn sie durch einen Computer ausgeführt werden, Schritte ausführen zumBestimmen von anwendbaren Konfigurationsinformationen zur Verwendungbei einer Analyse eines computergestützten Entwurfs, das folgendeMerkmale aufweist: Anweisungen zum Erzeugen einer Zustandsmaschineunter Verwendung von Informationen, die in einer Mehrzahl von Konfigurationsbefehlenenthalten sind, wobei, ansprechend auf eine Eingabe, die einen Netznamen aufweist,der einem Netz in dem Entwurf zugeordnet ist, die Zustandsmaschineeine Liste erzeugt, die Konfigurationsinformationen umfaßt, dieauf das Netz anwendbar sind; Anweisungen zum Anwenden einesNetznamens, der dem Entwurf zugeordnet ist, auf die Zustandsmaschine, umdie Liste zu erzeugen; und Anweisungen zum Anwenden der Konfigurationsbefehlein der Liste auf zumindest ein Netz in dem Entwurf.
[19] Softwareprodukt gemäß Anspruch 18, bei dem dieAnweisungen zum Erzeugen der Zustandsmaschine verursachen, daß die Zustandsmaschinekompiliert wird, durch Bestimmen, aus einem Satz von regulären Ausdrücken, dieden Konfigurationsbefehlen zugeordnet sind, eines Satzes von Zuständen und Übergängen zwischenden Zuständen,die gegen Zeichen des Netznamens in Übereinstimmung gebracht werden,um Null oder mehr reguläreAusdrückezu bestimmen, die mit dem Netznamen übereinstimmen, wobei jeglicheregulärenAusdrücke,die somit bestimmt werden, einen oder mehrere entsprechende Konfigurationsbefehleaufweisen, die denselben zugeordnet sind, die auf den Netznamenanwendbar sind.
[20] Softwareprodukt gemäß Anspruch 18 oder 19, beidem die Anweisungen zum Erzeugen der Zustandsmaschine verursachen,daß dieKonfigurationsbefehle auf zumindest ein Netz in dem Entwurf angewendet werden.
类似技术:
公开号 | 公开日 | 专利标题
US8719206B2|2014-05-06|Pattern-recognition processor with matching-data reporting module
Johnson1994|Substring Matching for Clone Detection and Change Tracking.
KR101736650B1|2017-05-16|드라이버를 로딩하는 방법 및 내장형 장치
JP3178475B2|2001-06-18|データ処理装置
US5987250A|1999-11-16|Transparent instrumentation for computer program behavior analysis
US5528753A|1996-06-18|System and method for enabling stripped object software monitoring in a computer system
US7886272B1|2011-02-08|Prioritize code for testing to improve code coverage of complex software
US9959254B2|2018-05-01|Representation of an element in a page via an identifier
Kapser et al.2003|Toward a taxonomy of clones in source code: A case study
JP4427500B2|2010-03-10|意味解析装置、意味解析方法および意味解析プログラム
US5301318A|1994-04-05|Hierarchical netlist extraction tool
US7340475B2|2008-03-04|Evaluating dynamic expressions in a modeling application
US20010018697A1|2001-08-30|Structured document processing system and structured document processing method
US20040268303A1|2004-12-30|System, method, and computer program product for generating a web application with dynamic content
US7367006B1|2008-04-29|Hierarchical, rules-based, general property visualization and editing method and system
US20030088577A1|2003-05-08|Database and method of generating same
US5784593A|1998-07-21|Simulator including process levelization
US20060004528A1|2006-01-05|Apparatus and method for extracting similar source code
CN100495401C|2009-06-03|结构化文档处理装置和方法
US6260042B1|2001-07-10|Quick difference and update for tree structure data
EP1374103A2|2004-01-02|System und verfahren zur erzeugung von tests mit dynamischen nebenbedingungen unter verwendung von statischer analyse
CA2517599A1|2004-09-30|Web server for adapted web content
JP2001344558A|2001-12-14|自動集計方法、自動集計装置および記録媒体
EP2561441A1|2013-02-27|Verbesserte eingebettete systemleistung
JP2005025763A|2005-01-27|構造化文書の分割プログラム、分割装置、及び分割方法
同族专利:
公开号 | 公开日
US20050050482A1|2005-03-03|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2005-04-07| OP8| Request for examination as to paragraph 44 patent law|
2006-03-23| 8130| Withdrawal|
优先权:
申请号 | 申请日 | 专利标题
[返回顶部]